Speed/positional mode translations

ABSTRACT

Gestures for converting from a position control mode to a motion continuation mode are disclosed. A position control mode can be invoked when the user simultaneously places two or more fingers upon a sensor panel. The fingers can then be moved around to effect position control. A motion continuation mode can be invoked when one or more fingers are lifted off (but at least one finger remains in contact with the sensor panel). If the motion continuation mode is invoked, a virtual control ring can be generated, and scrolling of the viewable area or dragging of the cursor or object can continue in a particular direction specified by a velocity vector pointed in the direction of finger movement at the time the motion continuation mode is invoked, and having a magnitude proportional to the velocity of the finger at the time the motion continuation mode was invoked.

FIELD OF THE INVENTION

This relates to gestures detectable at the surface of a touch sensorpanel, and more particularly, to the detection of finger gestures toinvoke position control and motion continuation modes.

BACKGROUND OF THE INVENTION

There exist today many styles of input devices for performing operationsin a computer system. The operations generally correspond to moving acursor and making selections on a display screen. The operations canalso include paging, scrolling, panning, zooming, etc. By way ofexample, the input devices can include buttons, switches, keyboards,mice, trackballs, touch pads, joy sticks, touch screens and the like.Each of these devices has advantages and disadvantages that can be takeninto account when designing a computer system.

With touch pad instruments such as touch pads on a personal laptopcomputer, the movement of the input pointer on a display generallycorresponds to the relative movements of the user's finger (or stylus)as the finger is moved along a surface of the touch pad. Touch screens,on the other hand, are a type of display screen that can include atouch-sensitive transparent panel (or “skin”) that can overlay thedisplay screen. When using a touch screen, a user typically makes aselection on the display screen by pointing directly to objects (such asgraphical user interface (GUI) objects) displayed on the screen (usuallywith a stylus or finger).

To provide additional functionality, finger and hand gestures have beenimplemented with some of these input devices. By way of example, aposition control mode can be performed by touching one or more fingersdown on the sensor panel and moving them around, and motion continuationmodes such as scrolling or dragging can be initiated by using fingermotion at the edge of the touch pad. These modes are described in U.S.Pat. No. 6,323,846 entitled “Method and Apparatus for Integrating ManualInput,” the contents of which are incorporated by reference herein forall purposes. However, heretofore it has been relatively difficult toswitch between position control and motion continuation modes.

SUMMARY OF THE INVENTION

This relates to gestures detectable by a sensor panel for convertingfrom a position control mode to a motion continuation mode. A positioncontrol mode can be invoked when the user substantially simultaneouslyplaces two or more fingers upon sensor panel, either near or over acursor or object. Alternatively, the fingers can be placed down anywhereon a sensor panel, and a cursor can appear near or under the fingers. Aslong as the two or more fingers remain touching the sensor panel, thefingers can be moved around to effect position control on the object orcursor.

A motion continuation mode, which can include the scrolling of aviewable area or the dragging of a cursor or object, can be invoked whenone or more fingers are lifted off, but at least one finger remains incontact with the sensor panel. This liftoff of fingers can be performedanywhere on the sensor panel, or can be limited to the edge of thesensor panel (where one or more fingers can be expected to move off thesensor panel to effectively create a liftoff condition). The latter canbe detected in part by recognizing edge zones. Alternatively, if two ormore fingers are detected in an edge zone, the motion continuation modecan be invoked even though no fingers are lifted. In other embodiments,the motion continuation mode can be invoked when one or more additionalfingers are touched down on the sensor panel while the already-touchingfingers remain in contact with the sensor panel, or the already-touchingfingers are pushed down with more force or otherwise flattened againstthe sensor panel.

If the motion continuation mode is invoked as described above, scrollingof the viewable area or dragging of the cursor or object can continue ina particular direction. The remaining touching fingers do not have tocontinue moving. The speed and direction of the scrolling or draggingcan be initially established by the speed and direction of the touchingfingers at the time the motion continuation mode was invoked. Memory canbe required to auto-regressively store finger velocity and direction sothat when the motion continuation mode is invoked, the last storedvelocity and direction can be retrieved, and the cursor or object cancontinue to move with the stored velocity in the stored direction.

When the motion continuation mode is invoked, a virtual control ring orjoystick can be generated to provide enhanced motion continuationcapabilities. The virtual control ring can be used as a joystick tonavigate within a document, photo, web page, e-mail list, address book,calendar, game, and the like, especially on small touchscreens. Thevirtual control ring can be formed with a velocity vector pointed in thedirection of finger movement at the time the motion continuation mode isinvoked, and having a magnitude proportional to the velocity of thefinger at the time the motion continuation mode was invoked. Backcalculations based on the velocity of the finger at the time motioncontinuation was invoked can be performed to determine a zero velocity“null” or center position of the virtual control ring. The tip ofvelocity vector can be coincident with the calculated centroid of thepatch generated by the finger. The virtual control ring can followfinger movement after the motion continuation mode is invoked.

If, during the motion continuation mode, one or more fingers are liftedoff the sensor panel, scrolling or dragging can cease. If one or morefingers are put back down, normal cursor position control or objectposition control (dragging) can once again be invoked. Thus, the usercan easily choose between cursor position control for fine positioningwithin the viewable area and motion continuation of a cursor or objectfor navigation over large distances.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1a illustrates an exemplary computing system that can detect fingerand hand motions and switch between position control and motioncontinuation modes according to one embodiment of this invention.

FIG. 1b is a block diagram of the exemplary host processor of FIG. 1aand connected devices according to one embodiment of this invention.

FIG. 2a illustrates an exemplary mutual capacitance touch sensor panelaccording to one embodiment of this invention.

FIG. 2b is a side view of an exemplary pixel in a steady-state(no-touch) condition according to one embodiment of this invention.

FIG. 2c is a side view of an exemplary pixel in a dynamic (touch)condition according to one embodiment of this invention.

FIG. 3 is an exemplary multipoint processing method according to oneembodiment of this invention.

FIGS. 4a and 4b illustrate an exemplary image in time according to oneembodiment of this invention.

FIG. 5 illustrates an exemplary group of features according to oneembodiment of this invention.

FIG. 6 illustrates an exemplary parameter calculation method accordingto one embodiment of this invention.

FIG. 7 illustrates several exemplary conversions from a position controlmode to a motion continuation mode according to embodiments of thisinvention.

FIG. 8 illustrates several other exemplary conversions from a positioncontrol mode to a motion continuation mode according to embodiments ofthe invention.

FIG. 9a-9h illustrate the operation of an exemplary virtual control ringthat can be generated during the motion continuation mode according toone embodiment of this invention.

FIG. 10a illustrates an exemplary mobile telephone that can include atouch sensor panel, display device, and other computing system blocks inthe computing system of FIG. 1 that can detect finger and hand motionsand switch between position control and motion continuation modesaccording to one embodiment of this invention.

FIG. 10b illustrates an exemplary digital audio/video player that caninclude a touch sensor panel, display device, and other computing systemblocks in the computing system of FIG. 1 that can detect finger and handmotions and switch between position control and motion continuationmodes according to one embodiment of this invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

In the following description of preferred embodiments, reference is madeto the accompanying drawings which form a part hereof, and in which itis shown by way of illustration specific embodiments in which theinvention can be practiced. It is to be understood that otherembodiments can be used and structural changes can be made withoutdeparting from the scope of the embodiments of this invention.

This relates to gestures detectable by a sensor panel for convertingfrom a position control mode to a motion continuation mode. A positioncontrol mode can be invoked when the user substantially simultaneouslyplaces two or more fingers upon sensor panel, either near or over acursor or object. As long as the two or more fingers remain touching thesensor panel, the fingers can be moved around to effect position controlon the object or cursor. A motion continuation mode, which can includescrolling of a viewable area or dragging of a cursor or object, can beinvoked when one or more fingers are lifted off (but at least one fingerremains in contact with the sensor panel). This liftoff of fingers canbe performed anywhere on the sensor panel, or can be limited to the edgeof the sensor panel (where one or more fingers can be expected to moveoff the sensor panel to effectively create a liftoff condition).

If the motion continuation mode is invoked, scrolling of the viewablearea or dragging of the cursor or object can continue in accordance withthe speed and direction of the touching fingers at the time the motioncontinuation mode was invoked. The remaining touching fingers do nothave to continue moving. When the motion continuation mode is invoked, avirtual control ring or joystick can be generated to provide enhancedmotion continuation capabilities. The virtual control ring can be formedwith a velocity vector pointed in the direction of finger movement atthe time the motion continuation mode is invoked, and having a magnitudeproportional to the velocity of the finger at the time the motioncontinuation mode was invoked. The virtual control ring can be used as ajoystick to navigate within a document, photo, web page, e-mail list,address book, calendar, game, and the like, especially on smalltouchscreens.

If, during the motion continuation mode, one or more fingers are liftedoff the sensor panel, scrolling or dragging can cease. If one or morefingers are put back down, normal cursor position control or objectposition control (scrolling and dragging) can once again be invoked.Thus, the user can easily choose between cursor position control forfine positioning on the viewable area and motion continuation of acursor or an object for navigation over large distances.

Although some embodiments of this invention may be described generallyherein in terms of touchscreens (touch sensor panels combined withdisplay devices), it should be understood that embodiments of theinvention can be applicable to touch tablets and other keyboards withouta display device. In addition, although embodiments of the invention maybe described herein in terms of certain fingers, it should be understoodthat any combinations of fingers can be used.

FIG. 1a illustrates exemplary computing system 100 that can detectfinger and hand motions and switch between position control and motioncontinuation modes according to embodiments of the invention. Computingsystem 100 can include one or more panel processors 102 and peripherals104, and panel subsystem 106. One or more panel processors 102 caninclude, for example, ARM968 processors or other processors with similarfunctionality and capabilities. However, in other embodiments, the panelprocessor functionality can be implemented instead by dedicated logic,such as a state machine. One or more panel processors 102 or hostprocessor 128 can execute software or firmware implementing thealgorithm for detecting finger and hand motions and switching betweenposition control and motion continuation modes according to embodimentsof the invention. Peripherals 104 can include, but are not limited to,random access memory (RAM) or other types of memory or storage, watchdogtimers and the like. Panel subsystem 106 can include, but is not limitedto, one or more analog channels 108, channel scan logic 110 and driverlogic 114. Channel scan logic 110 can access RAM 112, autonomously readdata from the analog channels and provide control for the analogchannels. In addition, channel scan logic 110 can control driver logic114 to generate stimulation signals 116 at one or more frequencies andphases that can be selectively applied to rows of touch sensor panel124. In some embodiments, panel subsystem 106, panel processor 102 andperipherals 104 can be integrated into a single application specificintegrated circuit (ASIC).

Touch sensor panel 124 can include a capacitive sensing medium having aplurality of row traces or driving lines and a plurality of columntraces or sensing lines, although other sensing media can also be used.The row and column traces can be formed from a transparent conductivemedium such as Indium Tin Oxide (ITO) or Antimony Tin Oxide (ATO),although other transparent and non-transparent materials such as coppercan also be used. In some embodiments, the row and column traces can beperpendicular to each other, although in other embodiments othernon-Cartesian orientations are possible. For example, in a polarcoordinate system, the sensing lines can be concentric circles and thedriving lines can be radially extending lines (or vice versa). It shouldbe understood, therefore, that the terms “row” and “column,” “firstdimension” and “second dimension,” or “first axis” and “second axis” asused herein are intended to encompass not only orthogonal grids, but theintersecting traces of other geometric configurations having first andsecond dimensions (e.g. the concentric and radial lines of apolar-coordinate arrangement). The rows and columns can be formed on asingle side of a substantially transparent substrate separated by asubstantially transparent dielectric material, on opposite sides of thesubstrate, or on two separate substrates separated by the dielectricmaterial.

At the “intersections” of the traces, where the traces pass above andbelow (cross) each other (but do not make direct electrical contact witheach other), the traces can essentially form two electrodes (althoughmore than two traces could intersect as well) representing a capacitivesensor. Each capacitive sensor can be viewed as picture element (pixel)126, which can be particularly useful when touch sensor panel 124 isviewed as capturing an “image” of touch over a frame (one complete scanof the panel). (In other words, after panel subsystem 106 has determinedwhether a touch event has been detected at each touch sensor in thetouch sensor panel, the pattern of touch sensors in the multi-touchpanel at which a touch event occurred can be viewed as an “image” oftouch (e.g. a pattern of fingers touching the panel).) The capacitancebetween row and column electrodes appears as a stray capacitance whenthe given row is held at direct current (DC) voltage levels and as amutual signal capacitance Csig when the given row is stimulated with analternating current (AC) signal. The presence of a finger or otherobject near or on the touch sensor panel can be detected by measuringchanges to a signal charge Qsig present at the pixels being touched,which is a function of Csig. Each column of touch sensor panel 124 candrive one or more analog channels 108 (also referred to herein as anevent detection and demodulation circuit) in panel subsystem 106. Eachanalog channel 108 can generate a value representative of an amount oftouch being sensed at the connected column, which can be indicative of atouch event at one or more pixels along that column. Touch sensor panel124 can include single-touch or multi-touch sensor panels, the latter ofwhich is described in Applicant's co-pending U.S. application Ser. No.10/842,862 entitled “Multipoint Touchscreen,” filed on May 6, 2004 andpublished as U.S. Published Application No. 2006/0097991 on May 11,2006, the contents of which are incorporated by reference herein.

Computing system 100 can correspond to a personal computer system, suchas a desktop, laptop, tablet or handheld computer. Computing system 100can also correspond to a computing device, such as a mobile telephone,personal digital assistant (PDA), dedicated media player, consumerelectronic device, and the like. Computing system 100 can include hostprocessor 128 for receiving outputs from panel processor 102 andperforming actions based on the outputs that can include, but are notlimited to, moving an object such as a cursor or pointer, scrolling orpanning, adjusting control settings, opening a file or document, viewinga menu, making a selection, executing instructions, operating aperipheral device connected to the host device, answering a telephonecall, placing a telephone call, terminating a telephone call, changingthe volume or audio settings, storing information related to telephonecommunications such as addresses, frequently dialed numbers, receivedcalls, missed calls, logging onto a computer or a computer network,permitting authorized individuals access to restricted areas of thecomputer or computer network, loading a user profile associated with auser's preferred arrangement of the computer desktop, permitting accessto web content, launching a particular program, encrypting or decoding amessage, and/or the like. Host processor 128 can also perform additionalfunctions that may not be related to panel processing, and can becoupled to program storage 132 and display device 130 such as an LCDdisplay for providing a UI to a user of the device.

FIG. 1b is a block diagram of the exemplary host processor 128 of FIG.1a and connected devices according to embodiments of the invention. Hostprocessor 128 can be configured to execute instructions and to carry outoperations associated with computing system 100. For example, usinginstructions retrieved from program storage 132, host processor 100 cancontrol the reception and manipulation of input and output data betweencomponents of computing system 100. Host processor 128 can beimplemented on a single-chip, multiple chips or multiple electricalcomponents. For example, various architectures can be used for hostprocessor 128, including a dedicated or embedded processor, a singlepurpose processor, controller, application specific integrated circuit(ASIC), and so forth.

In most cases, processor 128 together with an operating system (OS) canoperate to execute computer code and produce and use data. OSs aregenerally well known and will not be described in greater detail. By wayof example, the OS can correspond to OS/2, DOS, Unix, Linux, Palm OS,and the like. The OS can also be a special purpose OS, such as can beused for limited purpose appliance-type computing devices. The OS, othercomputer code and data can reside within memory block 132 that isoperatively coupled to processor 128. Memory block 132 can generallyprovide a place to store computer code and data that are used bycomputing system 100. By way of example, memory block 132 can includeRead-Only Memory (ROM), RAM, one or more hard disk drives and/or thelike. The information can also reside on a removable storage medium andloaded or installed onto computing system 100 when needed. Removablestorage mediums can include, for example, CD-ROMs, PC-CARDs, memorycards, floppy disks, magnetic tape, and a network component.

Computing system 100 can also include display device 130 that can beoperatively coupled to processor 128. Display device 130 can be a liquidcrystal display (LCD) (e.g., active matrix, passive matrix and thelike). Alternatively, display device 130 can be a monitor such as amonochrome display, color graphics adapter (CGA) display, enhancedgraphics adapter (EGA) display, variable-graphics-array (VGA) display,super VGA display, cathode ray tube (CRT), and the like. Display device130 can also correspond to a plasma display or a display implementedwith electronic inks.

Display device 130 can be configured to display GUI 118 that can providean easy to use interface between a user of the computer system and theoperating system or application running thereon. Generally speaking, GUI118 can represent programs, files and operational options with graphicalimages, objects, or vector representations. The graphical images caninclude windows, fields, dialog boxes, menus, icons, buttons, cursors,scroll bars, etc. Such images can be arranged in predefined layouts, orcan be created dynamically to serve the specific actions being taken bya user. During operation, the user can select and/or activate variousgraphical images in order to initiate functions and tasks associatedtherewith. By way of example, a user can select a button that opens,closes, minimizes, or maximizes a window, or an icon that launches aparticular program. GUI 118 can additionally or alternatively displayinformation, such as non interactive text and graphics, for the user ondisplay device 130.

Computing system 100 can also include input device 120 that can beoperatively coupled to processor 128. Input device 120 can be configuredto transfer data from the outside world into computing system 100. Inputdevice 120 can, for example, be used to perform tracking and to makeselections with respect to GUI 118 on display 130. Input device 120 canalso be used to issue commands in computing system 100. Input device 120can include a touch sensing device such as touch sensor panel 124,configured to receive input from a user's touch and send thisinformation to processor 128 through panel subsystem 106. In many cases,the touch-sensing device can recognize touches as well as the positionand magnitude of touches on a touch sensitive surface. The touch sensingdevice can detect and report the touches to processor 128, and processor128 can interpret the touches in accordance with its programming. Forexample, processor 128 can initiate a task in accordance with aparticular touch. A dedicated processor can be used to process toucheslocally and reduce demand for the main processor of the computingsystem.

The touch sensing device can be based on sensing technologies includingbut not limited to capacitive sensing, resistive sensing, surfaceacoustic wave sensing, pressure sensing, optical sensing, and/or thelike. Furthermore, the touch sensing means can be based on single pointsensing or multipoint sensing. Single point sensing is capable of onlydistinguishing a single touch, while multipoint sensing is capable ofdistinguishing multiple touches that occur at the same time.

As discussed above, input device 120 can be a touch screen that can bepositioned over or in front of display 130, integrated with displaydevice 130, or can be a separate component, such as a touch pad.

Computing system 100 can also include capabilities for coupling to oneor more I/O devices 122. By way of example, I/O devices 122 cancorrespond to keyboards, printers, scanners, cameras, microphones,speakers, and/or the like. I/O devices 122 can be integrated withcomputing system 100 or they can be separate components (e.g.,peripheral devices). In some cases, I/O devices 122 can be connected tocomputing system 100 through wired connections (e.g., cables/ports). Inother cases, I/O devices 122 can be connected to computing system 100through wireless connections. By way of example, the data link cancorrespond to PS/2, USB, IR, Firewire, RF, Bluetooth or the like.

According to embodiments of the invention, computing system 100 can bedesigned to recognize gestures 134 applied to input device 120 and tocontrol aspects of computing system 100 based on the gestures. In somecases, a gesture can be defined as a stylized interaction with an inputdevice that can be mapped to one or more specific computing operations.Gestures 134 can be made through various hand, and more particularlyfinger motions. Alternatively or additionally, the gestures can be madewith a stylus. In all of these cases, input device 120 can receivegestures 134, and processor 128 can execute instructions to carry outoperations associated with the gestures 134. In addition, memory block132 can include gesture operational program 136, which can be part ofthe OS or a separate application. Gesture operation program 136 cangenerally include a set of instructions that can recognize theoccurrence of gestures 134 and can inform one or more software agents ofthe gestures and/or what action(s) to take in response to the gestures.Additional details regarding the various gestures that can be used asinput commands are discussed further below.

Upon a user performing one or more gestures, input device 120 can relaygesture information to processor 128. Using instructions from memory132, and more particularly, gesture operational program 136, processor128 can interpret the gestures 134 and control different components ofcomputing system 100, such as memory 132, display 130 and I/O devices122, based on the gestures. Gestures 134 can be identified as commandsfor performing actions in applications stored in memory 132, modifyingimage objects shown on display 130, modifying data stored in memory 132,and/or for performing actions in I/O devices 122.

Note that although FIG. 1b illustrates input device 120 and display 130as two separate boxes for illustration purposes, the two boxes can berealized on one device. It should also be noted that, while FIG. 1aillustrates dedicated panel processor 102, panel subsystem 106 can becontrolled directly by the host processor 128. Additionally, it shouldalso be noted that touch sensor panel 124 and display device 130 can beintegrated into a single touch screen display device.

FIG. 2a illustrates exemplary mutual capacitance touch sensor panel 200according to embodiments of the invention. FIG. 2a indicates thepresence of a stray capacitance Cstray at each pixel 202 located at theintersection of a row 204 and a column 206 trace (although Cstray foronly one column is illustrated in FIG. 2 for purposes of simplifying thefigure). In the example of FIG. 2a , AC stimuli Vstim 214, Vstim 215 andVstim 217 can be applied to several rows, while other rows can beconnected to DC. Vstim 214, Vstim 215 and Vstim 217 can be at differentfrequencies and phases, as will be explained later. Each stimulationsignal on a row can cause a charge Qsig=Csig×Vstim to be injected intothe columns through the mutual capacitance present at the affectedpixels. A change in the injected charge (Qsig_sense) can be detectedwhen a finger, palm or other object is present at one or more of theaffected pixels. Vstim signals 214, 215 and 217 can include one or morepulse trains 216, and each pulse train can include a particular numberof a number of pulses. Although pulse trains 216 are shown as squarewaves, other waveshapes such as sine waves can also be employed. Notethat although FIG. 2a illustrates rows 204 and columns 206 as beingsubstantially perpendicular, they need not be so aligned, as describedabove. As described above, each column 206 can be connected to an analogchannel (see analog channels 108 in FIG. 1).

FIG. 2b is a side view of exemplary pixel 202 in a steady-state(no-touch) condition according to embodiments of the invention. In FIG.2b , an electric field of electric field lines 208 of the mutualcapacitance between column 206 and row 204 traces or electrodesseparated by dielectric 210 is shown.

FIG. 2c is a side view of exemplary pixel 202 in a dynamic (touch)condition. In FIG. 2c , finger 212 has been placed near pixel 202.Finger 212 is a low-impedance object at signal frequencies, and has anAC capacitance Cfinger from the column trace 204 to the body. The bodyhas a self-capacitance to ground Cbody of about 200 pF, where Cbody ismuch larger than Cfinger. If finger 212 blocks some electric field lines208 between the row and column electrodes (those fringing fields thatexit the dielectric and pass through the air above the row electrode),those electric field lines are shunted to ground through the capacitancepath inherent in the finger and the body, and as a result, the steadystate signal capacitance Csig is reduced by ΔCsig. In other words, thecombined body and finger capacitance act to reduce Csig by an amountΔCsig (which can also be referred to herein as Csig_sense), and can actas a shunt or dynamic return path to ground, blocking some of theelectric fields as resulting in a reduced net signal capacitance. Thesignal capacitance at the pixel becomes Csig−ΔCsig, where Csigrepresents the static (no touch) component and ΔCsig represents thedynamic (touch) component. Note that Csig−ΔCsig may always be nonzerodue to the inability of a finger, palm or other object to block allelectric fields, especially those electric fields that remain entirelywithin the dielectric material. In addition, it should be understoodthat as a finger is pushed harder or more completely onto themulti-touch panel, the finger can tend to flatten, blocking more andmore of the electric fields, and thus ΔCsig can be variable andrepresentative of how completely the finger is pushing down on the panel(i.e. a range from “no-touch” to “full-touch”).

Further details of multi-touch sensor detection, including proximitydetection by a touch panel, are described in commonly assigned andco-pending (1) U.S. application Ser. No. 10/840,862 entitled “MultipointTouchscreen,” which was published on May 11, 2006 as U.S. PublicationNo. US2006/0097991, (2) U.S. application Ser. No. 11/428,522 entitled“Identifying Contacts On A Touch Surface,” which was published on Oct.26, 2006 as U.S. Publication No. 2006/0238522, and (3) U.S. applicationSer. No. 11/649,998 entitled “Proximity and Multi-Touch Sensor Detectionand Demodulation,” filed on Jan. 3, 2007, the entirety of each of whichis hereby incorporated herein by reference.

FIG. 3 illustrates multipoint processing method 300 in accordance withembodiments of the invention. Multipoint processing method 300 can, forexample, be performed with the system shown in FIG. 1a or FIG. 1b .Multipoint processing method 300 generally begins at block 302 whereimages can be read from a multipoint input device, and more particularlya multipoint touch screen. Although the term “image” may be used, itshould be noted that the data can come in other forms. In most cases,the image read from the touch sensor panel can provide magnitude (Z) asa function of position (X and Y) for each sensing point or pixel of thetouch sensor panel. The magnitude can, for example, reflect thecapacitance measured at each point.

Following block 302, multipoint processing method 300 proceeds to block304, where the image can be converted into a collection or list offeatures. Each feature can represent a distinct input such as a touch.In most cases, each feature can include its own unique identifier (ID),x coordinate, y coordinate, Z magnitude, angle Θ, area A, and the like.

FIGS. 4a and 4b illustrate an exemplary image 420 in time according toembodiments of the invention. In image 420, there are two features 422based on two distinct touches. The touches can for example be formedfrom a pair of fingers touching the touch screen. As shown, each feature422 can include unique identifier (ID), x coordinate, y coordinate, Zmagnitude, angle Θ, and area A. More particularly, the first feature422A can be represented by ID₁, X₁, Y₁, Z₁, Θ₁, A₁ and the secondfeature 422B can be represented by ID₂, X₂, Y₂, Z₂, Θ₂, A₂. This datacan be outputted for example using a multi-touch protocol.

The conversion from data or images to features can be accomplished usingmethods described in copending U.S. application Ser. No. 10/840,862titled “Multipoint Touchscreen.” As disclosed therein, the raw data canbe received in a digitized form, and can include values for each node ofthe touch screen. The values can be between 0 and 256 where 0 equates tono touch pressure and 256 equates to full touch pressure. Thereafter,the raw data can be filtered to reduce noise. Once filtered, gradientdata, which indicates the topology of each group of connected points,can be generated. Thereafter, the boundaries for touch regions can becalculated based on the gradient data (i.e., a determination can be madeas to which points are grouped together to form each touch region). Byway of example, a watershed algorithm can be used. Once the boundariesare determined, the data for each of the touch regions can be calculated(e.g., X, Y, Z, Θ, A).

Referring again to FIG. 3, following block 304, multipoint processingmethod 300 proceeds to block 306 where feature classification andgroupings can be performed. During classification, the identity of eachof the features can be determined. For example, the features can beclassified as a particular finger, thumb, palm or other object. Onceclassified, the features can be grouped. The manner in which the groupsare formed can widely vary. In most cases, the features can be groupedbased on some criteria (e.g., they carry a similar attribute). Forexample, the two features shown in FIG. 4a and FIG. 4b can be groupedtogether because each of these features is located in proximity to eachother or because they are from the same hand. The grouping can includesome level of filtering to filter out features that are not part of thetouch event. In filtering, one or more features can be rejected becausethey either meet some predefined criteria or because they do not meetsome predefined criteria. By way of example, one of the features can beclassified as a thumb located at the edge of a tablet PC. Because thethumb is being used to hold the device rather than being used to performa task, the feature generated therefrom can be rejected, i.e., is notconsidered part of the touch event being processed.

Following block 306, multipoint processing method 300 proceeds to block308 where key parameters for the feature groups can be calculated. Thekey parameters can include distance between features, X/Y centroid ofall features, feature rotation, total pressure of the group (e.g.,pressure at centroid), and the like. As shown in FIG. 5, the calculationcan include finding the centroid C, drawing a virtual line 530 to eachfeature from the centroid C, defining the distance D for each virtualline (D₁ and D₂), and then averaging the distances D₁ and D₂. Once theparameters are calculated, the parameter values can be reported. Theparameter values can be typically reported with a group identifier (GID)and number of features within each group (in this case three). In mostcases, both initial and current parameter values can be reported. Theinitial parameter values can be based on set down, i.e., when the usersets their fingers on the touch screen, and the current values can bebased on any point within a stroke occurring after set down.

Referring again to FIG. 3, blocks 302-308 can be repetitively performedduring a user stroke thereby generating a plurality of sequentiallyconfigured signals. The initial and current parameters can be comparedin later steps to perform actions in the system.

Following block 308, the process flow proceeds to block 310 where thegroup can be associated with a user interface (UI) element. UI elementscan be buttons boxes, lists, sliders, wheels, knobs, etc. Each UIelement can represent a component or control of the user interface. Theapplication behind the UI element(s) can have access to the parameterdata calculated in block 308. In one implementation, the application canrank the relevance of the touch data to the UI element correspondingthere to. The ranking can be based on some predetermined criteria. Theranking can include producing a figure of merit and, whichever UIelement has the highest figure of merit, giving it sole access to thegroup. There can even be some degree of hysteresis as well (e.g., onceone of the UI elements claims control of that group, the group stickswith the UI element until another UI element has a much higher ranking).By way of example, the ranking can include determining proximity of thecentroid (or features) to the image object associated with the UIelement.

Following block 310, multipoint processing method 300 proceeds to blocks312 and 314. Blocks 312 and 314 can be performed approximately at thesame time. From the user perspective, in one embodiment, blocks 312 and314 appear to be performed concurrently. In block 312, one or moreactions can be performed based on differences between initial andcurrent parameter values, and can also be based to a UI element to whichthey are associated, if any. In block 314, user feedback pertaining tothe one ore more action being performed can be provided. By way ofexample, user feedback can include display, audio, tactile feedbackand/or the like.

FIG. 6 illustrates a parameter calculation method 650 in accordance withembodiments of the invention. Parameter calculation method 650 can, forexample, correspond to block 308 shown in FIG. 3. The parametercalculation method 650 generally begins at block 652 where a group offeatures can be received. Following block 652, the parameter calculationmethod 650 proceeds to block 654 where a determination can be made as towhether or not the number of features in the group of features haschanged. For example, the number of features can have changed due to theuser picking up or placing an additional finger. Different fingers canbe needed to perform different controls (e.g., tracking, gesturing). Ifthe number of features has changed, the parameter calculation method 650proceeds to block 656 where the initial parameter values can becalculated. If the number stays the same, the parameter calculationmethod 650 proceeds to block 658 where the current parameter values canbe calculated. Thereafter, the parameter calculation method 650 proceedsto block 660 where the initial and current parameter values can bereported. By way of example, the initial parameter values can containthe average initial distance between points (or Distance (AVG) initial)and the current parameter values can contain the average currentdistance between points (or Distance (AVG) current). These can becompared in subsequent steps in order to control various aspects of acomputer system.

The above methods and techniques can be used to implement any number ofGUI interface objects and actions. The detection and implementation ofsuch gestures can be performed by a processor executing firmware orsoftware. For example, a substantially simultaneous placement of two ormore fingers upon a sensor panel, or the placement of two or morefingers upon the sensor panel in relatively close proximity to eachother, can invoke a position control function. Changes to the fingerscan then invoke a motion continuation mode.

FIG. 7 illustrates several exemplary conversions from a position controlmode to motion continuation mode according to embodiments of theinvention. In the example of FIG. 7, a position control mode can beinvoked when the user places two or more fingers upon sensor panel 704at original location 701. In alternative embodiments, the placement ofthe two fingers onto the sensor panel can be performed substantiallysimultaneously and/or can be within a certain distance of each other toinvoke the position control mode. Although two fingers (thumb 700 andindex finger 702) are shown in FIG. 7, any two or more fingers can beused. In some embodiments, fingers 700 and 702 can be placed down nearor over a cursor, icon. etc. (collectively referred to as an object) 706to perform position control (movement) of the cursor or object. In otherembodiments, fingers 700 and 702 can be placed down anywhere, and anobject to be moved can appear near or under the fingers. As long as thetwo or more fingers remain touching the sensor panel, the fingers can bemoved around to effect position control on the object. It should beunderstood that although FIG. 7 illustrates a touchscreen embodimentwith object 706 appearing near or under the user's fingers, in tablet orother non-touchscreen embodiments, images such as object 706 along withany other images can appear on a separate display device.

In embodiments of the invention illustrated in FIG. 7, a motioncontinuation mode, which can include scrolling or dragging, can beinvoked when one or more fingers are lifted off, but at least one fingerremains in contact with the sensor panel, while the two or more fingersare being moved along the sensor panel. This liftoff of fingers can beperformed anywhere on the sensor panel, or can be limited to the edge ofthe sensor panel (where one or more fingers can be expected to move offthe sensor panel to effectively create a liftoff condition). The lattercan be detected in part by recognizing edge zones. In still anotherembodiment, if two or more fingers are detected in an edge zone, thecursor motion continuation mode can be invoked even though no fingersare lifted.

FIG. 7 illustrates a first exemplary situation where the user hasmaintained two fingers on the surface of the sensor panel (see patchesor images of touch 718 and 720), but has moved the hand upward (seedirectional arrow 708) to first new location 703 until index finger 702has moved off the sensor panel, leaving only thumb 700 touching thesensor panel. Note that position control has been in operation to thispoint, with object 706 moving along with the fingers. The movement ofindex finger 702 off the sensor panel can be interpreted as a fingerliftoff, at which time a motion continuation mode (to be discussed ingreater detail hereinafter) can be invoked.

FIG. 7 also illustrates a second exemplary situation where the user hasmaintained two fingers on the surface of the sensor panel, but has movedthe hand to the left (see directional arrow 710) to second new location705 until thumb 700 has moved off the sensor panel, leaving only indexfinger 702 touching the sensor panel. Note that position control hasbeen in operation to this point, with object 706 moving along with thefingers. The movement of thumb 700 off the sensor panel can beinterpreted as a finger liftoff, at which time the motion continuationmode can be invoked.

FIG. 7 also illustrates a third exemplary situation where the usermaintains two fingers on the surface of the sensor panel while movingthe hand downward (see directional arrow 712) to third new location 707until a point in time at which thumb 700 lifts off the sensor panel,leaving only index finger 702 touching the sensor panel. Note thatposition control has been in operation to this point, with object 706moving along with the fingers. Note also that in this example, neitherfinger was near the edge of the sensor panel. The liftoff of thumb 700can invoke the motion continuation mode.

FIG. 7 also illustrates a fourth exemplary situation where the usermaintains two fingers on the surface of the sensor panel while movingthe hand to the right (see directional arrow 714) to fourth new location709 until a point in time at which both thumb 700 and index finger 702are touching edge zone 716 on the sensor panel. Note that positioncontrol has been in operation to this point, with object 706 movingalong with the fingers. The detection of thumb 700 and index finger 702in edge zone 716 can invoke the motion continuation mode, even thoughneither finger has lifted off the sensor panel.

FIG. 8 illustrates several other exemplary conversions from a positioncontrol mode to a motion continuation mode according to embodiments ofthe invention. In the example of FIG. 8, a position control mode can beinvoked when the user places two or more fingers upon sensor panel 804at original location 801. In alternative embodiments, the placement ofthe two fingers onto the sensor panel can be performed substantiallysimultaneously and/or can be within a certain distance of each other toinvoke the position control mode. Although two fingers (index finger 802and middle finger 822) are shown in FIG. 8, any two or more fingers canbe used. In some embodiments, fingers 802 and 822 can be placed downnear or over object 806 to perform position control (movement) of thecursor or object. In other embodiments, fingers 802 and 822 can beplaced down anywhere on the sensor panel, and an object to be moved canappear near or under the fingers. As long as the two or more fingersremain touching the sensor panel, the fingers can be moved around toeffect position control on the object. It should be understood thatalthough FIG. 8 illustrates a touchscreen embodiment with object 806appearing near or under the user's fingers, in tablet or othernon-touchscreen embodiments, images such as object 806 along with anyother images can appear on a separate display device. In otherembodiments not shown in FIG. 8, only one finger can be touched down toinvoke the position control mode.

In embodiments of the invention illustrated in FIG. 8, a motioncontinuation mode, which can include scrolling or dragging, can beinvoked when one or more additional fingers are touched down on thesensor panel while the one or more already-touching fingers remain incontact with the sensor panel, or the one or more already-touchingfingers are pushed down with more force or otherwise flattened againstthe sensor panel, while the one or more already-touching fingers arebeing moved along the sensor panel. This touchdown or flattening offingers can be performed anywhere on the sensor panel. In alternativeembodiments, the placement of the one or more additional fingers ontothe sensor panel can be performed within a certain distance of eachother to invoke the motion continuation mode.

FIG. 8 illustrates a first exemplary situation where the user hasmaintained two fingers on the surface of the sensor panel (see patchesor images of touch 818 and 820), but has moved the hand to the left (seedirectional arrow 810) to first new location 803 until a point in timeat which thumb 800 additionally touches down on the sensor panel. Notethat position control has been in operation to this point, with object806 moving along with the fingers. The touchdown of thumb 800 onto thesensor panel can invoke the motion continuation mode.

FIG. 8 also illustrates a second exemplary situation where the user hasmaintained two fingers on the surface of the sensor panel (see patchesor images of touch 818 and 820), but has moved the hand upwards (seedirectional arrow 808) to second new location 805 until a point in timeat which fingers 802 and 822 are pushed down harder or otherwiseflattened against the sensor panel (see the resulting larger patches 824and 826). Note that position control has been in operation to thispoint, with object 806 moving along with the fingers. The sensing ofadditional force upon the sensor panel or the detection of largerpatches can invoke the motion continuation mode. Force-sensing touchsensor panels are described in U.S. application Ser. No. 11/818,335entitled “Touch Screen Stack-Up Processing,” filed on Jan. 5, 2007 andpublished as U.S. Patent Application Publication No. 2008/0165139, thecontents of which are incorporated by reference herein.

If the motion continuation mode is invoked as described above, scrollingof the viewable area or dragging of a cursor or object can continue in aparticular direction. The remaining touching fingers do not have tocontinue moving. For example, if the motion continuation mode is invokedafter an upward motion of the touching-fingers, upward scrolling oftext, images and the like can occur even if the remaining touchingfingers stop moving (which can occur at an edge of the sensor panel).The object can remain substantially stationary at the approximatelocation of the touching fingers while scrolling or dragging of theobject can continue. In the present example of upward movement, thescrolling or dragging can be performed in an upward direction at a fixedspeed, or the speed and direction can be substantially similar to thespeed and direction of the touching fingers at the time the motioncontinuation mode was invoked. The latter can require memory toauto-regressively store finger velocity and direction so that when themotion continuation mode is invoked, the last stored velocity anddirection can be retrieved, and the object can continue to move with thestored velocity in the stored direction.

If, during the motion continuation mode, one or more additional fingersare lifted off the sensor panel, scrolling or dragging can cease. If oneor more fingers are put back down, normal object position control(dragging) can once again be invoked. Thus, the user can easily choosebetween position control for fine positioning within the viewable areaand motion continuation of an object for navigation over largedistances.

FIG. 9a-9h illustrate the operation of an exemplary virtual control ringthat can be generated during the motion continuation mode according toembodiments of the invention. When the motion continuation mode isinvoked, a virtual control ring or joystick can be generated to provideenhanced motion control capabilities. Note that the virtual control ringcan either be displayed to the user or kept invisible. The virtualcontrol ring can be used as a joystick to navigate within a document,photo, web page, e-mail list, address book, calendar, game, and thelike, especially on small sensor panels.

In the example of FIG. 9a , if finger 900 is being moved in forwarddirection 902 at the time the motion continuation mode is invoked,virtual control ring 904 can be formed with velocity vector 906 pointedin the forward direction and a magnitude proportional to the velocity offinger 900 at the time motion continuation was invoked. Velocity vector906 can represent the velocity of motion continuation, and can originatefrom null 908 in virtual control ring 904.

Back calculations based on the velocity of finger 900 at the time motioncontinuation was invoked can be performed to determine the zero velocity“null” 908 or center position of virtual control ring 904. In general,the farther a centroid of touch generated by the touching finger islocated from the null, the greater the velocity (up to some maximumvelocity), and the closer to the null, the slower the velocity. Inkeyboard embodiments without a touch screen, because null 908 can getharder to re-locate the further finger 900 is away from the null, thenull can be made wider (a null circle) instead of just a point. This canmake it easier to move finger 900 (as defined by the centroid of thepatch) into the null to stop motion.

Note that point 910 of velocity vector 906 can be coincident with thecalculated centroid of patch 912 generated by finger 900. Virtualcontrol ring 904 can follow finger 900 whether it becomes stationaryafter the motion continuation mode is invoked or continues to move indirection 902, or in other embodiments can remain stationary whetherfinger 900 continues to move or remains stationary.

If finger 900 moves backward from the position shown in FIG. 9a to aposition shown in FIG. 9b (i.e. backward with respect to null 908),velocity vector 906 can shrink, indicating a smaller forward velocity.As long as the finger centroid remains forward of the null and thevector points forward, forward motion continues. If finger 900 continuesto move backward to a position shown in FIG. 9c (i.e. directly over null908), velocity vector 906 can disappear, indicating no forward velocity.In other words, if the finger centroid is pulled back to the null, thevector can shrink down to zero, and motion can stop. If finger 900continues to move backward to a position shown in FIG. 9d , velocityvector 906 can point backward, indicating a backward velocity (i.e.motion continuation in the opposite direction).

It should be noted that finger 900 can move in other directions, such asright, left, and at an angle, velocity vectors can be formed in thosedirections, the virtual control rings FIG. 9e , FIG. 9f , and FIG. 9gcan be generated, and motion can continue in those directions. In otherwords, the velocity vector within the virtual control ring can act as ajoystick, with the velocity and direction of the motion continuationbeing controllable by a finger as it moves within the control ring.

However, the finger can, on occasion, move beyond the virtual controlring. As mentioned above, the farther the finger is moved from the null,the greater the velocity, up to a maximum limit that still allowsreasonable controllability. Because movements far from the null will notincrease the velocity beyond this maximum limit, yet such largemovements make it harder to re-locate the null (in tablet or keyboardembodiments where the virtual control ring is not visible), the entirevirtual control ring and null can move along with the finger so that thefinger is always at or within the boundaries of the virtual control ringand close to the null.

It should also be noted that the virtual control ring need not beperfectly circular. It can be oblong or ellipsoid to provide more orless-sensitive velocity control along a preferred axis, such as the axisof finger motion prior to entering motion continuation mode.

FIG. 9h shows virtual control ring 904 with forward velocity vector 906originally generated at location 916 due to hand 914 moving upward indirection 902 at the time the motion continuation mode was invoked. If,during the motion continuation mode, finger 900 is dragged far from null908 in direction 914 to new location 918, velocity vector 906 can now bepointed in the same direction as 914. However, the magnitude of velocityvector 906 will not be based on a linear interpolation outward from null908 in virtual control ring 904 at original location 916, but rather thevelocity can be clipped at the maximum limit and velocity vector 906will never extend beyond the limits imposed by the virtual control ring.Because of this velocity limitation, as shown in FIG. 9h , virtualcontrol ring 904 and null 908 can be pulled along with finger 900 as itmoves to new location 918. Thus, the location of virtual control ring904 and null 908 can become relative to finger 900, so that the fingercan effect speed and directional control with very little movement ofthe finger.

The virtual control ring can be used as a joystick to move around in adocument, web page, lists, games, especially on small sensor panels andtouchscreens. the position control mode can be used for moving around toan exact position within a visible area of the screen, while the motioncontinuation mode, because it has variable velocity and direction, canbe better for changing the visible area of the screen to a portion faraway that is not currently visible (in which case highest velocity canbe used), or to a portion nearby (in which case low velocity can beused).

FIG. 10a illustrates an exemplary mobile telephone 1036 that can includetouch sensor panel 1024, display device 1030, and other computing systemblocks in computing system 100 of FIG. 1 that can detect finger and handmotions and switch between position control and motion continuationmodes according to embodiments of the invention.

FIG. 10b illustrates an exemplary digital audio/video player 1038 thatcan include touch sensor panel 1024, display device 1030, and othercomputing system blocks in computing system 100 of FIG. 1 that candetect finger and hand motions and switch between position control andmotion continuation modes according to embodiments of the invention.

Although embodiments of this invention have been fully described withreference to the accompanying drawings, it is to be noted that variouschanges and modifications will become apparent to those skilled in theart. Such changes and modifications are to be understood as beingincluded within the scope of embodiments of this invention as defined bythe appended claims.

What is claimed is:
 1. A method for converting from a position controlmode to a motion continuation mode on a sensor panel to provide enhancedmotion control capabilities, comprising: entering the position controlmode upon detecting a touchdown of two or more fingers on the sensorpanel, wherein during the position control mode, motion of an operationis presented by a display; detecting a liftoff of one or more of thefingers from the sensor panel, with at least one of the fingersremaining in contact with the sensor panel, during movement of the twoor more fingers along the sensor panel; entering the motion continuationmode upon the detection of the liftoff of the one or more fingers; andcontinuing the motion of the operation being presented by the displayduring the position control mode in a direction of movement of the twoor more fingers detected during the liftoff of the one or more fingerswhen the motion continuation mode is entered; wherein once the motioncontinuation mode is entered, the motion of the operation beingpresented by the display during the position control mode is continuedregardless of a position of the at least one finger remaining in contactwith the sensor panel.
 2. The method of claim 1, the detected movementof the two or more fingers including a velocity of the movement detectedduring the liftoff, the method further comprising generating a virtualcontrol ring upon entering the motion continuation mode, the virtualcontrol ring for controlling the velocity and direction of the motionbeing presented by the display and continued during the motioncontinuation mode.
 3. The method of claim 2, the motion of the operationbeing presented by the display and continued including scrolling of aviewable area or dragging an object in a direction and at a velocitysubstantially similar to the direction and velocity of the two or morefingers being moved along the sensor panel when the motion continuationmode was entered.
 4. The method of claim 3, further comprisinggenerating a velocity vector within the virtual control ring whosemagnitude and direction is proportional to the velocity and direction ofthe motion being presented by the display and continued.
 5. The methodof claim 4, further comprising generating a null within the virtualcontrol ring for stopping the motion being presented by the display andcontinued.
 6. The method of claim 4, further comprising moving one ofthe fingers remaining in contact with the sensor panel within thevirtual control ring to adjust the magnitude and direction of thevelocity vector and control the velocity and direction of the motionbeing presented by the display and continued.
 7. The method of claim 2,further comprising pulling the virtual control ring along with one ofthe fingers remaining in contact with the sensor panel if the fingermoves beyond an original location of the virtual control ringestablished when the motion continuation mode was invoked.
 8. The methodof claim 1, further comprising continuing to scroll a viewable area orcontinuing to drag an object being presented by the display afterentering the motion continuation mode and detecting that all fingersremaining in contact with the sensor panel have substantially ceasedfurther movement.
 9. The method of claim 8, further comprisingcontinuing to scroll the viewable area or continuing to drag the objectbeing presented at the display in a direction and at a velocitysubstantially similar to the direction and velocity of the two or morefingers being moved along the sensor panel when the motion continuationmode was entered.
 10. The method of claim 1, further comprisingterminating the motion continuation mode if one or more additionalfingers are lifted off the sensor panel during the motion continuationmode.
 11. The method of claim 1, further comprising terminating themotion continuation mode and resuming position control mode if one ormore additional fingers touch the sensor panel during the motioncontinuation mode.
 12. The method of claim 1, further comprisingentering the motion continuation mode upon detecting a liftoff of one ormore of the fingers from the sensor panel in an edge zone of the sensorpanel.
 13. The method of claim 1, further comprising entering theposition control mode upon detecting a substantially simultaneoustouchdown of the two or more fingers on the sensor panel.
 14. The methodof claim 1, further comprising entering the position control mode upondetecting a touchdown of the two or more fingers on the sensor panelwithin a predetermined distance from each other.
 15. The method of claim1, further comprising entering the position control mode upon detectinga touchdown of the two or more fingers on the sensor panel near or overan object.
 16. The method of claim 1, further comprising generating acursor to be moved upon detecting the touchdown of the two or morefingers on the sensor panel.
 17. A non-transitory computer-readablemedium comprising program code for converting from a position controlmode to a motion continuation mode on a sensor panel to provide enhancedmotion control capabilities, the program code for causing performance ofa method comprising: entering the position control mode upon detecting atouchdown of two or more fingers on the sensor panel, wherein during theposition control mode, motion of an operation is presented by a display;detecting a liftoff of one or more of the fingers from the sensor panel,with at least one of the fingers remaining in contact with the sensorpanel, during movement of the two or more fingers along the sensorpanel; entering the motion continuation mode upon the detection of theliftoff of the one or more fingers; and continuing the motion of theoperation being presented by the display during the position controlmode in a direction of movement of the two or more fingers detectedduring the liftoff of the one or more fingers when the motioncontinuation mode is entered; wherein once the motion continuation modeis entered, the motion of the operation being presented by the displayduring the position control mode is continued regardless of a positionof the at least one finger remaining in contact with the sensor panel.18. The non-transitory computer-readable medium of claim 17, thedetected movement of the two or more fingers including a velocity of themovement detected during the liftoff, the program code further forcausing performance of a method comprising generating a virtual controlring upon entering the motion continuation mode, the virtual controlring for controlling the velocity and direction of the motion beingpresented by the display and continued during the motion continuationmode.
 19. The non-transitory computer-readable medium of claim 18, themotion of the operation being presented by the display and continuedincluding scrolling of a viewable area or dragging an object in adirection and at a velocity substantially similar to the direction andvelocity of the two or more fingers being moved along the sensor panelwhen the motion continuation mode was entered.
 20. The non-transitorycomputer-readable medium of claim 19, the program code further forcausing performance of a method comprising generating a velocity vectorwithin the virtual control ring whose magnitude and direction isproportional to the velocity and direction of the motion being presentedby the display and continued.
 21. The non-transitory computer-readablemedium of claim 20, the program code further for causing performance ofa method comprising generating a null within the virtual control ringfor stopping the motion being presented by the display and continued.22. The non-transitory computer-readable medium of claim 20, the programcode further for causing performance of a method comprising moving oneof the fingers remaining in contact with the sensor panel within thevirtual control ring to adjust the magnitude and direction of thevelocity vector and control the velocity and direction of the motionbeing presented by the display and continued.
 23. The non-transitorycomputer-readable medium of claim 18, the program code further forcausing performance of a method comprising pulling the virtual controlring along with one of the fingers remaining in contact with the sensorpanel if the finger moves beyond an original location of the virtualcontrol ring established when the motion continuation mode was invoked.24. The non-transitory computer-readable medium of claim 17, the programcode further for causing performance of a method comprising continuingto scroll a viewable area or continuing to drag an object beingpresented by the display after entering the motion continuation mode anddetecting that all fingers remaining in contact with the sensor panelhave substantially ceased further movement.
 25. The non-transitorycomputer-readable medium of claim 24, the program code further forcausing performance of a method comprising continuing to scroll theviewable area or continuing to drag the object being presented at thedisplay in a direction and at a velocity substantially similar to thedirection and velocity of the two or more fingers being moved along thesensor panel when the motion continuation mode was entered.
 26. Thenon-transitory computer-readable medium of claim 17, the program codefurther for causing performance of a method comprising terminating themotion continuation mode if one or more additional fingers are liftedoff the sensor panel during the motion continuation mode.
 27. Thenon-transitory computer-readable medium of claim 17, the program codefurther for causing performance of a method comprising terminating themotion continuation mode, and resuming position control mode, if one ormore additional fingers touch the sensor panel during the motioncontinuation mode.
 28. The non-transitory computer-readable medium ofclaim 17, the program code further for causing performance of a methodcomprising entering the motion continuation mode upon detecting aliftoff of one or more of the fingers from the sensor panel in an edgezone of the sensor panel.
 29. The non-transitory computer-readablemedium of claim 17, the program code further for causing performance ofa method comprising entering the position control mode upon detecting asubstantially simultaneous touchdown of the two or more fingers on thesensor panel.
 30. The non-transitory computer-readable medium of claim17, the program code further for causing performance of a methodcomprising entering the position control mode upon detecting a touchdownof the two or more fingers on the sensor panel within a predetermineddistance from each other.
 31. The non-transitory computer-readablemedium of claim 28, the program code further for causing performance ofa method comprising entering the position control mode upon detecting atouchdown of the two or more fingers on the sensor panel near or over anobject.
 32. The non-transitory computer-readable medium of claim 17, theprogram code further for causing performance of a method comprisinggenerating a cursor to be moved upon detecting the touchdown of the twoor more fingers on the sensor panel.
 33. A computing system comprisingthe non-transitory computer-readable medium of claim
 17. 34. A mobiletelephone comprising the computing system of claim
 33. 35. A digitalaudio player comprising the computing system of claim
 33. 36. A mobiletelephone including a computer-readable medium comprising program codefor converting from a position control mode to a motion continuationmode on a sensor panel to provide enhanced motion control capabilities,the program code for causing performance of a method comprising:entering the position control mode upon detecting a touchdown of two ormore fingers on the sensor panel, wherein during the position controlmode, motion of an operation is presented by a display; detecting aliftoff of one or more of the fingers from the sensor panel, with atleast one of the fingers remaining in contact with the sensor panel,during movement of the two or more fingers along the sensor panel;entering the motion continuation mode upon the detection of the liftoffof the one or more fingers; and continuing the motion of the operationbeing presented by the display during the position control mode in adirection of movement of the two or more fingers detected during theliftoff of the one or more fingers when the motion continuation mode isentered; wherein once the motion continuation mode is entered, themotion of the operation being presented by the display during theposition control mode is continued regardless of a position of the atleast one finger remaining in contact with the sensor panel.
 37. Adigital audio player including a computer-readable medium comprisingprogram code for converting from a position control mode to a motioncontinuation mode on a sensor panel to provide enhanced motion controlcapabilities, the program code for causing performance of a methodcomprising: entering the position control mode upon detecting atouchdown of two or more fingers on the sensor panel, wherein during theposition control mode, motion of an operation is presented by a display;detecting a liftoff of one or more of the fingers from the sensor panel,with at least one of the fingers remaining in contact with the sensorpanel, during movement of the two or more fingers along the sensorpanel; entering the motion continuation mode upon the detection of theliftoff of the one or more fingers; and continuing the motion of theoperation being presented by the display during the position controlmode in a direction of movement of the two or more fingers detectedduring the liftoff of the one or more fingers when the motioncontinuation mode is entered; wherein once the motion continuation modeis entered, the motion of the operation being presented by the displayduring the position control mode is continued regardless of a positionof the at least one finger remaining in contact with the sensor panel.38. An apparatus for converting from a position control mode to a motioncontinuation mode on a sensor panel to provide enhanced motion controlcapabilities, the apparatus comprising: means for entering the positioncontrol mode upon detecting a touchdown of two or more fingers on thesensor panel, wherein during the position control mode, motion of anoperation is presented by a display; means for detecting a liftoff ofone or more of the fingers from the sensor panel, with at least one ofthe fingers remaining in contact with the sensor panel, during movementof the two or more fingers along the sensor panel; means for enteringthe motion continuation mode upon the detection of the liftoff of theone or more fingers; and means for continuing the motion of theoperation being presented by the display during the position controlmode in a direction of movement of the two or more fingers detectedduring the liftoff of the one or more fingers when the motioncontinuation mode is entered; wherein once the motion continuation modeis entered, the motion of the operation being presented by the displayduring the position control mode is continued regardless of a positionof the at least one finger remaining in contact with the sensor panel.